from celery import Celery

"""
1.创建任务
2.创建Celery实例
3.在Celery中设置任务，broker
4.worker

"""

# 1. celery 是一个即插即用的任务队列
# celery 是需要和django(当前工程)进行交互的
# 让我们的celery加载当前工程的默认配置


# 第一种方式
# import os
# os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mall.settings")

# 第二种方式：
#进行Celery允许配置
# 为celery使用django配置文件进行设置
import os
if not os.getenv('DJANGO_SETTINGS_MODULE'):
    os.environ['DJANGO_SETTINGS_MODULE'] = 'mall.settings'


# 2.创建celery实例
# main习惯添加celery的文件路径 确保main 不出现重复
app=Celery(main="celery_tasks")

# 3.设置broker (中间人 负责分发任务)
# 加载broker的配置信息： 参数：路径信息
app.config_from_object("celery_tasks.config")

# 4.让celery自动检测任务
# 参数：列表
#  元素：任务的包路径
app.autodiscover_tasks(['celery_tasks.sms'])


#5.让worker 去执行任务

# 需要在虚拟环境中执行指令
# celery-A celery实例对象的文件路径 worker -l info
# celery -A celery_tasks.main worker -l info

